home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group93a.txt / 000106_icon-group-sender _Fri Apr 9 05:14:18 1993.msg < prev    next >
Internet Message Format  |  1993-04-21  |  2KB

  1. Received: by cheltenham.cs.arizona.edu; Fri, 9 Apr 1993 05:53:46 MST
  2. Via: uk.ac.manchester.computer-science; Fri, 9 Apr 1993 13:10:31 +0100
  3. From: Steve Holden <steve@dtc.co.uk>
  4. Date: Fri, 9 Apr 93 13:05:20 BST
  5. Message-Id: <5718.9304091205@desktop.desktop.co.uk>
  6. To: icon-group@cs.arizona.edu
  7. Subject: Re: Earn guru status - help an Icon rookie
  8. Status: R
  9. Errors-To: icon-group-errors@cs.arizona.edu
  10.  
  11. Well, I wouldn't put myself down as a guru, but it seems to me that
  12. a way to recast the given procedure, which was:
  13.  
  14. >     procedure genchar( s, c )
  15. >         every i := ( s ? upto( c ) ) do
  16. >             write ( i )
  17. >     end
  18. >
  19.  
  20. is as follows.  Note that the right-hand operand of the matching
  21. operation is now a control structure, so the &pos keyword moves
  22. forward through the subject string.  The cset() call is not strictly
  23. necessary, as an implicit conversion would take place if a string
  24. argument were used.
  25.  
  26.     procedure main(arg)
  27.     genchar(arg[1],cset(arg[2]))
  28.     end
  29.     
  30.     procedure genchar(s,c)
  31.     s ? { every i := tab(upto(c)) do
  32.         write(move(1))
  33.     }
  34.     end
  35.  
  36. This seems to work fine, as evinced by:
  37.  
  38. scotia% ./t "scotia electronic publishing" "aeiou"
  39. o
  40. i
  41. a
  42. e
  43. e
  44. o
  45. i
  46. u
  47. i
  48. i
  49.  
  50. Does anyone have a neater solution - this was just a quick hack.
  51.  
  52. regards
  53.  Steve
  54.  
  55. PS I hope the group would agree it exists to answer questions like this
  56.    and help converts to the Icon language?
  57.  
  58.  +---------------------------------+-------------------------------------+
  59.  | Steve Holden, Technical Director| Desktop Connection Limited          |
  60.  | steve@desktop.co.uk             | Manchester Science Park             |
  61.  |---------------------------------+ Lloyd Street North                  |
  62.  | Publish and be damned. Publish  | Manchester England M15 4EN          |
  63.  | electronically and be heard.    | Tel: +44 61 227 9055 Fax: 226 4922  |
  64.  +---------------------------------+-------------------------------------+
  65.